/**
 * 
 */
package com.hww.sort.impl;

import com.hww.sort.ISortNumber;

/**
 * 采用綫性插入排序實現數組排序
 * @author:Huangwenwei
 * @date:2014-6-18 
 * @time:下午5:13:29
 */
public class LinearInsertSort implements ISortNumber {

	public LinearInsertSort() {
	}
	
	@Override
	public int[] sortASC(int[] intArray) {
		
		if(intArray == null)
			return null;
		int[] srcData = (int[])intArray.clone();
		int size = srcData.length;
		int temp =0;
		int index = 0;
		//假定第一個數字是已經排序好的，所以是從 1開始，而不是從0開始
		for(int i=1;i<size;i++){
			temp = srcData[i];
			index = i;
			while(index>0 && temp < srcData[index-1]){
				//移動index前面的數字
				srcData[index] = srcData[index-1];
				index--;
			}
			srcData[index] = temp;
		}
		return srcData;
	}

}
